Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte:

111
Capítulo 3 Redes de computadores e a Internet Camada de transporte

description

Objetivos do capítulo:  Entender os princípios por trás dos serviços da camada de transporte:  Multiplexação/demultiplexação  Transferência de dados confiável  Controle de fluxo  Controle de congestionamento  Aprender sobre os protocolos de transporte na Internet: - PowerPoint PPT Presentation

Transcript of Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte:

Capiacutetulo3

Redes de computadores e a InternetRedes de computadores e a Internet

Camadade

transporte

3

3 - 2copy 2005 by Pearson Education

Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte

Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de congestionamento do TCP

Camada de transporte

3

3 - 3copy 2005 by Pearson Education

Camada de transporte

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

3

3 - 4copy 2005 by Pearson Education

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

3

3 - 5copy 2005 by Pearson Education

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

3

3 - 6copy 2005 by Pearson Education

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 2copy 2005 by Pearson Education

Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte

Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de congestionamento do TCP

Camada de transporte

3

3 - 3copy 2005 by Pearson Education

Camada de transporte

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

3

3 - 4copy 2005 by Pearson Education

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

3

3 - 5copy 2005 by Pearson Education

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

3

3 - 6copy 2005 by Pearson Education

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 3copy 2005 by Pearson Education

Camada de transporte

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

3

3 - 4copy 2005 by Pearson Education

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

3

3 - 5copy 2005 by Pearson Education

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

3

3 - 6copy 2005 by Pearson Education

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 4copy 2005 by Pearson Education

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

3

3 - 5copy 2005 by Pearson Education

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

3

3 - 6copy 2005 by Pearson Education

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 5copy 2005 by Pearson Education

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

3

3 - 6copy 2005 by Pearson Education

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 6copy 2005 by Pearson Education

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 7copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 8copy 2005 by Pearson Education

Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidos ao socket correto

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 9copy 2005 by Pearson Education

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 10copy 2005 by Pearson Education

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 11copy 2005 by Pearson Education

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 12copy 2005 by Pearson Education

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 13copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 14copy 2005 by Pearson Education

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 15copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 16copy 2005 by Pearson Education

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC 768]

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 17copy 2005 by Pearson Education

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 18copy 2005 by Pearson Education

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas

depoishellip

UDP checksum

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 19copy 2005 by Pearson Education

Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 20copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 21copy 2005 by Pearson Education

Importante nas camadas de aplicaccedilatildeo transporte e enlace

Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 22copy 2005 by Pearson Education

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora

udt_send() chamada pela entidade de transporte para transferir pacotes

para o receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega ao lado receptor do canal

deliver_data() chamada pela entidade de transporte para entregar

dados para cima

Transferecircncia confiaacutevel o ponto de partida

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 23copy 2005 by Pearson Education

Etapas

Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)

Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo estado fica unicamente

determinado pelo proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel o ponto de partida

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 24copy 2005 by Pearson Education

Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes

FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 25copy 2005 by Pearson Education

rdt20 canal com erros de bit

Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits

A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa

explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 26copy 2005 by Pearson Education

rdt20 especificaccedilatildeo FSM

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 27copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 operaccedilatildeo com ausecircncia de erros

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 28copy 2005 by Pearson Education

aguarda chamada de

cima

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

aguarda ACK ou

NAK

aguarda chamada de

baixo

rdt_send(data)

rdt20 cenaacuterio de erro

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 29copy 2005 by Pearson Education

O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do

receptor

rdt20 tem um problema fatal

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 30copy 2005 by Pearson Education

rdt21 transmissor trata ACKNAKs perdidos

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 31copy 2005 by Pearson Education

rdt21 receptor trata ACKNAKs perdidos

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 32copy 2005 by Pearson Education

Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados

O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1

Receptor Deve verificar se o pacote recebido eacute duplicado

Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido

pelo transmissor

rdt21 discussatildeo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 33copy 2005 by Pearson Education

Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo

pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia

do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 34copy 2005 by Pearson Education

aguarda chamada 0

de cima

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

aguarda ACK

0

fragmento FSMdo transmissor

aguarda0 de baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

rdt22 fragmentos do transmissor e do receptor

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 35copy 2005 by Pearson Education

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente

rdt30 canais com erros e perdas

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 36copy 2005 by Pearson Education

Transmissor rdt30

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 37copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 38copy 2005 by Pearson Education

rdt30 em accedilatildeo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 39copy 2005 by Pearson Education

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado

Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos

U sender =

008 30008

= 000027 microseconds

L R

RTT + L R =

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho do rdt30

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 40copy 2005 by Pearson Education

rdt30 operaccedilatildeo pare e espere

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 41copy 2005 by Pearson Education

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor

Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolos com paralelismo (pipelining)

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 42copy 2005 by Pearson Education

U sender =

024 30008

= 00008 microseconds

3 L R

RTT + L R =

Pipelining aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 43copy 2005 by Pearson Education

Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)

Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que

estejam dentro da janela

Go-Back-N

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 44copy 2005 by Pearson Education

GBN FSM estendida para o transmissor

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 45copy 2005 by Pearson Education

Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum

Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

GBN FSM estendida para o receptor

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 46copy 2005 by Pearson Education

GBN em accedilatildeo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 47copy 2005 by Pearson Education

Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido

Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 48copy 2005 by Pearson Education

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 49copy 2005 by Pearson Education

TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero

de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para

o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora

Retransmissatildeo seletiva

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 50copy 2005 by Pearson Education

Retransmissatildeo seletiva em accedilatildeo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 51copy 2005 by Pearson Education

Exemplo Sequumlecircncias 0 1 2 3

Tamanho da janela = 3

Receptor natildeo vecirc diferenccedila nos dois cenaacuterios

Incorretamente passa dados duplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela

Retransmissatildeo seletiva dilema

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 52copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 53copy 2005 by Pearson Education

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream

Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)

Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo

MSS maximum segment size Orientado agrave conexatildeo

Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados

Controle de fluxo Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 54copy 2005 by Pearson Education

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 55copy 2005 by Pearson Education

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte

nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte

esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 56copy 2005 by Pearson Education

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia Muito curto temporizaccedilatildeo prematura

Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 57copy 2005 by Pearson Education

EstimatedRTT = (1-)EstimatedRTT + SampleRTT

Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 58copy 2005 by Pearson Education

Exemplos de estimativa do RTT

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 59copy 2005 by Pearson Education

Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo

Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(typically = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 60copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 61copy 2005 by Pearson Education

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 62copy 2005 by Pearson Education

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense

no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo

confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 63copy 2005 by Pearson Education

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever

Comentaacuterio SendBase-1

uacuteltimo byte do ACK cumulativo

Exemplo SendBase-1

= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado

Transmissor TCP (simplificado)

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 64copy 2005 by Pearson Education

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 65copy 2005 by Pearson Education

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 66copy 2005 by Pearson Education

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 67copy 2005 by Pearson Education

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 68copy 2005 by Pearson Education

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

Algoritmo de retransmissatildeo raacutepida

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 69copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 70copy 2005 by Pearson Education

lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 71copy 2005 by Pearson Education

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 72copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 73copy 2005 by Pearson Education

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 74copy 2005 by Pearson Education

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 75copy 2005 by Pearson Education

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 76copy 2005 by Pearson Education

Estados do cliente Estados do servidor

Gerenciamento de conexatildeo TCP

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 77copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 78copy 2005 by Pearson Education

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 79copy 2005 by Pearson Education

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 80copy 2005 by Pearson Education

Um roteador buffers finitos Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 81copy 2005 by Pearson Education

Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

in

out

=

in

out

gt

inout

ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 82copy 2005 by Pearson Education

Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees

in

P o que acontece quando e

aumentam

in

Causascustos do congestionamento cenaacuterio 3

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 83copy 2005 by Pearson Education

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

hospedeiro A

hospedeiro B

o

u

t

Causascustos do congestionamento cenaacuterio 3

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 84copy 2005 by Pearson Education

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos

observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)

Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 85copy 2005 by Pearson Education

ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado

Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado

Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela

rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento

As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos

Estudo de caso controle de congestionamento do serviccedilo ATM ABR

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 86copy 2005 by Pearson Education

Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho

Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida

Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 87copy 2005 by Pearson Education

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 88copy 2005 by Pearson Education

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 89copy 2005 by Pearson Education

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 90copy 2005 by Pearson Education

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 91copy 2005 by Pearson Education

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmento

RTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 92copy 2005 by Pearson Education

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 93copy 2005 by Pearson Education

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 94copy 2005 by Pearson Education

Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente

Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente

Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold

Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS

Resumo controle de congestionamento TCP

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 95copy 2005 by Pearson Education

Evento Estado Accedilatildeo do transmissor TCP

Comentaacuterio

ACK recebido para dado previamente natildeo-confirmado

partida lenta (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Resulta em dobrar o CongWin a cada RTT

ACK recebido para dado previamente natildeo-confirmado

prevenccedilatildeo de congestiona-mento (CA)

CongWin = CongWin + MSS (MSSCongWin)

Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT

Evento de perda detectado por trecircs ACKs duplicados

SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo

Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS

Tempo de confirmaccedilatildeo

SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado

CongWin e Threshold natildeo mudam

TCP sender congestion control

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 96copy 2005 by Pearson Education

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 97copy 2005 by Pearson Education

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 98copy 2005 by Pearson Education

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 99copy 2005 by Pearson Education

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo

aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 100copy 2005 by Pearson Education

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 101copy 2005 by Pearson Education

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 102copy 2005 by Pearson Education

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

atraso = 2RTT + OR

Janela de congestionamento fixa (1)

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 103copy 2005 by Pearson Education

Segundo caso WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valor da janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Janela de congestionamento fixa (2)

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 104copy 2005 by Pearson Education

Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta

Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito

E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

SRTTP

R

ORTTLatency P )12(2

1min KQP

TCP Modelagem de latecircncia partida lenta (1)

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 105copy 2005 by Pearson Education

Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta

Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

TCP modelagem de latecircncia partida lenta (2)

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 106copy 2005 by Pearson Education

RS

RS

RTTPRTTRO

RS

RTTRS

RTTRO

TempoBloqueioRTTRO

P

kP

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela 2 1

RSRTT

RS k =uacuteucirc

ugraveecirceumleacute -+

+-

ateacute quando o servidor recebe reconhecimento

tempo quando o servidor inicia o envio do segmento

=+RTTRS

tempo para enviar a k-eacutesima janela2 1 =-RSk

TCP modelagem de latecircncia partida lenta (3)

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 107copy 2005 by Pearson Education

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 108copy 2005 by Pearson Education

Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)

HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma

dos periacuteodos de inatividade

HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos

periacuteodos de inatividade

HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma

dos periacuteodos de inatividade

Modelagem HTTP

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 109copy 2005 by Pearson Education

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

Tempo de resposta HTTP (em segundos)

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 110copy 2005 by Pearson Education

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

RTT =1 seg O = 5 Kbytes M=10 and X=5

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande

Tempo de resposta HTTP (em segundos)

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

3

3 - 111copy 2005 by Pearson Education

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo